package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementDataHealthAnalyseComReqDto
 * @使用场景
 */
@Data
public class ImplementDataHealthAnalyseComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 目标得分计算公式 CALC:自己计算得分 CLONE_FROM_EVA_SUBJECT:当前树克隆主树得分
     */
    @NotNull(message = "目标得分计算公式不能为空")
    @ApiModelProperty("目标得分计算公式")
    private String calcOrClone;

    /**
     * 目标得分本级与下级组合变量 RANK_CALC:计算本级得分 DOWN_CALC:计算下级得分 RANK_AND_DOWN_CALC:计算本级+下级得分
     */
    @ApiModelProperty("目标得分本级与下级组合变量")
    private String reportScoreCountFormula;

    /**
     * 主观得分
     */
    @ApiModelProperty("主观得分")
    private Double subjectiveScore;

    /**
     * 客观得分
     */
    @ApiModelProperty("客观得分")
    private Double objectiveScore;

    /**
     * 主客观得分
     */
    @ApiModelProperty("主客观得分")
    private Double subAndObjScore;

    /**
     * 最近平均分
     */
    @ApiModelProperty("最近平均分")
    private Double processReportAverageScore;

    /**
     * 中期得分
     */
    @ApiModelProperty("中期得分")
    private Double midCycleReportScore;

    /**
     * 过程中期得分
     */
    @ApiModelProperty("过程中期得分")
    private Double processMidCycleReportScore;

    /**
     * 本级过程得分
     */
    @ApiModelProperty("本级过程得分")
    private Double thisLevelProcessScore;

    /**
     * 下级目标得分
     */
    @ApiModelProperty("下级目标得分")
    private Double subTargetScore;

    /**
     * 主客观得分_主观得分权重
     */
    @ApiModelProperty("主客观得分_主观得分权重")
    private Double subjectiveScoreWeight;

    /**
     * 主客观得分_客观得分权重
     */
    @ApiModelProperty("主客观得分_客观得分权重")
    private Double objectiveScoreWeight;

    /**
     * 本级过程得分_主客观得分权重
     */
    @ApiModelProperty("本级过程得分_主客观得分权重")
    private Double reportScoreSubAndObjWeight;

    /**
     * 本级过程得分_最近平均分权重
     */
    @ApiModelProperty("本级过程得分_最近平均分权重")
    private Double processReportScoreAvgWeight;

    /**
     * 本级过程得分_过程中期得分权重
     */
    @ApiModelProperty("本级过程得分_过程中期得分权重")
    private Double processReportScoreProMidWeight;

    /**
     * 本级过程得分_中期目标得分权重
     */
    @ApiModelProperty("本级过程得分_中期目标得分权重")
    private Double processReportScoreMidWeight;

    /**
     * 目标得分_本级过程得分权重
     */
    @ApiModelProperty("目标得分_本级过程得分权重")
    private Double actualScoreLocalLevelWeight;

    /**
     * 目标得分_下级目标得分权重
     */
    @ApiModelProperty("目标得分_下级目标得分权重")
    private Double actualScoreLowerLevelWeight;

}
